home *** CD-ROM | disk | FTP | other *** search
- #! /bin/sh
- set -ef
-
- if test -n "$KSH_VERSION"; then
- puts() {
- print -r -- "$*"
- }
- else
- puts() {
- printf '%s\n' "$*"
- }
- fi
-
- ALLMATCHES=0
-
- while getopts a whichopts
- do
- case "$whichopts" in
- a) ALLMATCHES=1 ;;
- ?) puts "Usage: $0 [-a] args"; exit 2 ;;
- esac
- done
- shift $(($OPTIND - 1))
-
- if [ "$#" -eq 0 ]; then
- ALLRET=1
- else
- ALLRET=0
- fi
- case $PATH in
- (*[!:]:) PATH="$PATH:" ;;
- esac
- for PROGRAM in "$@"; do
- RET=1
- IFS_SAVE="$IFS"
- IFS=:
- case $PROGRAM in
- */*)
- if [ -f "$PROGRAM" ] && [ -x "$PROGRAM" ]; then
- puts "$PROGRAM"
- RET=0
- fi
- ;;
- *)
- for ELEMENT in $PATH; do
- if [ -z "$ELEMENT" ]; then
- ELEMENT=.
- fi
- if [ -f "$ELEMENT/$PROGRAM" ] && [ -x "$ELEMENT/$PROGRAM" ]; then
- puts "$ELEMENT/$PROGRAM"
- RET=0
- [ "$ALLMATCHES" -eq 1 ] || break
- fi
- done
- ;;
- esac
- IFS="$IFS_SAVE"
- if [ "$RET" -ne 0 ]; then
- ALLRET=1
- fi
- done
-
- exit "$ALLRET"
-